<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<title>class RDoc::Generator::POT - rdoc: Ruby Standard Library Documentation</title>


<script src="../../js/navigation.js" defer></script>
<script src="../../js/search.js" defer></script>
<script src="../../js/search_index.js" defer></script>
<script src="../../js/searcher.js" defer></script>
<script src="../../js/darkfish.js" defer></script>

<script src="../../js/jquery-3.2.0.min.js"></script>

<script src="../../js/vue.min.js"></script>
<script src="../../js/js.cookie.min.js"></script>

<link href="../../css/fonts.css" rel="stylesheet">
<link id='rdoccss' href="../../css/rdoc.css" rel="stylesheet">
<link href="../../css/carbon17.css" rel="stylesheet">

<script type="text/javascript">
  var rdoc_rel_prefix = "../../";
  var index_rel_prefix = "../../";
  var darkModeCsseHref = "../../css/rdoc-dm.css"
  var defaultModeCssHref = "../../css/rdoc.css"
  // var cssDarkmode = Cookies.get('darkmode');
  
  if( Cookies.get("darkmode") == "true") {
	$('#rdoccss').attr("href", darkModeCsseHref);
}

//  https://cssdeck.com/blog/simple-jquery-stylesheet-switcher/

document.write('<style type="text/css">body{display:none}</style>');

</script>


</head>
<body id="top" role="document" class="class">
  <!-- this is class.html -->

  <div id='actionbar' >
    <div class='wrapper mdiv'>
      <ul class='grids g0'></ul>
    </div> 
    <!-- VERSION HEADER for 3.3.0.preview2 NOT FOUND -->
  </div> <!-- end action bar -->

  <div class='wrapper hdiv'>

    


    <nav id='vapp' role="navigation">
    <div id="project-navigation">
      <div id="home-section" role="region" title="Quick navigation" class="nav-section">
  <h2><a href="../../index.html" rel="home">Home</a></h2>

  <div id="table-of-contents-navigation"  >
    <a href="../../table_of_contents.html#pages">Pages</a>
    <a href="../../table_of_contents.html#classes">Classes</a>
    <a href="../../table_of_contents.html#methods">Methods</a>
  </div>
</div>

      <div id="search-section" role="search" class="project-section initially-hidden">
  <form action="#" method="get" accept-charset="utf-8">
    <div id="search-field-wrapper">
      <input id="search-field" role="combobox" aria-label="Search"
             aria-autocomplete="list" aria-controls="search-results"
             type="text" name="search" placeholder="Search" spellcheck="false"
             title="Type to search, Up and Down to navigate, Enter to load">
    </div>

    <ul id="search-results" aria-label="Search Results"
        aria-busy="false" aria-expanded="false"
        aria-atomic="false" class="initially-hidden"></ul>
  </form>
</div>

    </div>


    
<div class="nav-section">
  <h3>Table of Contents</h3>

  <ul class="link-list" role="directory">
    <li><a href="#class-RDoc::Generator::POT-label-Create+.pot">Create .pot</a>
    <li><a href="#class-RDoc::Generator::POT-label-Create+.po">Create .po</a>
    <li><a href="#class-RDoc::Generator::POT-label-Update+translation">Update translation</a>
  </ul>
</div>


    <button id='toggleThing' @click="toggleNav()" >Show/hide navigation</button>
    <div :class="isOpen ? 'block' : 'hidden' " id='toggleMe'>
      <div id="class-metadata">
        
        
<div id="parent-class-section" class="nav-section">
  <h3>Parent</h3>

  <p class="link"><a href="../../Object.html">Object</a>
</div>

        
        
        
<!-- Method Quickref -->
<div id="method-list-section" class="nav-section">
  <h3>Methods</h3>

  <ul class="link-list" role="directory">
    <li ><a href="#method-i-class_dir">#class_dir</a>
    <li ><a href="#method-i-extract_messages">#extract_messages</a>
    <li ><a href="#method-i-generate">#generate</a>
    <li ><a href="#method-i-initialize">#initialize</a>
  </ul>
</div>

      </div>
     </div>
    </nav>


    <div id='extraz'><div class='adzbox-index'  >
      
     </div>         
    </div>

    <main role="main" aria-labelledby="class-RDoc::Generator::POT">
    <h1 id="class-RDoc::Generator::POT" class="class">
      class RDoc::Generator::POT
    </h1>

    <section class="description">
    
<p>Generates a <a href="POT.html"><code>POT</code></a> file.</p>

<p>Here is a translator work flow with the generator.</p>

<h2 id="class-RDoc::Generator::POT-label-Create+.pot">Create .pot<span><a href="#class-RDoc::Generator::POT-label-Create+.pot">&para;</a> <a href="#top">&uarr;</a></span></h2>

<p>You create .pot file by pot formatter:</p>

<pre>% rdoc --format pot</pre>

<p>It generates doc/rdoc.pot.</p>

<h2 id="class-RDoc::Generator::POT-label-Create+.po">Create .po<span><a href="#class-RDoc::Generator::POT-label-Create+.po">&para;</a> <a href="#top">&uarr;</a></span></h2>

<p>You create .po file from doc/rdoc.pot. This operation is needed only the first time. This work flow assumes that you are a translator for Japanese.</p>

<p>You create locale/ja/rdoc.po from doc/rdoc.pot. You can use msginit provided by GNU gettext or rmsginit provided by gettext gem. This work flow uses gettext gem because it is more portable than GNU gettext for Rubyists. Gettext gem is implemented by pure Ruby.</p>

<pre>% gem install gettext
% mkdir -p locale/ja
% rmsginit --input doc/rdoc.pot --output locale/ja/rdoc.po --locale ja</pre>

<p>Translate messages in .po</p>

<p>You translate messages in .po by a <a href="POT/PO.html"><code>PO</code></a> file editor. po-mode.el exists for Emacs users. There are some GUI tools such as GTranslator. There are some Web services such as POEditor and Tansifex. You can edit by your favorite text editor because .po is a text file. Generate localized documentation</p>

<p>You can generate localized documentation with locale/ja/rdoc.po:</p>

<pre>% rdoc --locale ja</pre>

<p>You can find documentation in Japanese in doc/. Yay!</p>

<h2 id="class-RDoc::Generator::POT-label-Update+translation">Update translation<span><a href="#class-RDoc::Generator::POT-label-Update+translation">&para;</a> <a href="#top">&uarr;</a></span></h2>

<p>You need to update translation when your application is added or modified messages.</p>

<p>You can update .po by the following command lines:</p>

<pre>% rdoc --format pot
% rmsgmerge --update locale/ja/rdoc.po doc/rdoc.pot</pre>

<p>You edit locale/ja/rdoc.po to translate new messages.</p>

    </section>

      <section id="5Buntitled-5D" class="documentation-section">


      <section class="constants-list">
      <header>
      <h3>Constants</h3>
      </header>
      <dl>
          <dt id="DESCRIPTION">DESCRIPTION
          <dd><p>Description of this generator</p>
        </dl>
        </section>



                <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Public Instance Methods</h3>
                </header>

                  <div id="method-i-class_dir" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">class_dir</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="class_dir-source">
            <pre><span class="ruby-comment"># File rdoc/generator/pot.rb, line 84</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">class_dir</span>
  <span class="ruby-keyword">nil</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-generate" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">generate</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Writes .pot to disk.</p>

                              <div class="method-source-code" id="generate-source">
            <pre><span class="ruby-comment"># File rdoc/generator/pot.rb, line 76</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">generate</span>
  <span class="ruby-identifier">po</span> = <span class="ruby-identifier">extract_messages</span>
  <span class="ruby-identifier">pot_path</span> = <span class="ruby-string">&#39;rdoc.pot&#39;</span>
  <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">pot_path</span>, <span class="ruby-string">&quot;w&quot;</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pot</span><span class="ruby-operator">|</span>
    <span class="ruby-identifier">pot</span>.<span class="ruby-identifier">print</span>(<span class="ruby-identifier">po</span>.<span class="ruby-identifier">to_s</span>)
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

                <section id="protected-instance-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Protected Instance Methods</h3>
                </header>

                  <div id="method-i-initialize" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">initialize</span><span
                                class="method-args">(store, options)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Set up a new .pot generator</p>

                              <div class="method-source-code" id="initialize-source">
            <pre><span class="ruby-comment"># File rdoc/generator/pot.rb, line 68</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span> <span class="ruby-identifier">store</span>, <span class="ruby-identifier">options</span> <span class="ruby-comment">#:not-new:</span>
  <span class="ruby-ivar">@options</span>    = <span class="ruby-identifier">options</span>
  <span class="ruby-ivar">@store</span>      = <span class="ruby-identifier">store</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

                <section id="private-instance-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Private Instance Methods</h3>
                </header>

                  <div id="method-i-extract_messages" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">extract_messages</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="extract_messages-source">
            <pre><span class="ruby-comment"># File rdoc/generator/pot.rb, line 89</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">extract_messages</span>
  <span class="ruby-identifier">extractor</span> = <span class="ruby-constant">MessageExtractor</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@store</span>)
  <span class="ruby-identifier">extractor</span>.<span class="ruby-identifier">extract</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

              </section>
              </main>



            </div>  <!--  class='wrapper hdiv' -->


<footer id="validator-badges" role="contentinfo">
<p><a href="https://validator.w3.org/check/referer">Validate</a></p>
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.4.0.</p>
<p>Based on <a href="https://github.com/ged/darkfish/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.</p>

  
    <p><p><a href="https://ruby-doc.org">Ruby-doc.org</a> is provided by <a href="https://jamesbritt.com">James Britt</a> and <a href="https://neurogami.com">Neurogami</a>. </p><p><a href="https://jamesbritt.bandcamp.com/">Hack your world.  Feed your head.  Live curious</a>.</p>
</p>
  
  </footer>

<script type="text/javascript">


  let ads  = $("#carbonads-container").children().detach();


  function swapMode() {
    var cookieName = 'darkmode';
    var cssDarkmode = Cookies.get(cookieName);
    console.log("***** swapMode! " + cssDarkmode + " *****");


    if (cssDarkmode == "true") {
      console.log("We have dark mode, set the css to light ...");
      $('#rdoccss').attr("href", defaultModeCssHref);
      $('#cssSelect').text("Dark mode");
      cssDarkmode = "false";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    } else {
      console.log("We not have dark mode, set the css to dark ...");
      $('#rdoccss').attr("href", darkModeCsseHref);
      $('#cssSelect').text("Light mode");
      cssDarkmode = "true";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    }

    console.log("  --------------- ");
  }


const vueCssApp = new Vue({
el: '#menubar',
data: {
isDark: false
},
methods: {
toggleClass: function(event){
this.isDark = !this.isDark;
}
}
})

const vueApp = new Vue({
el: '#vapp',
data: { 
isOpen: true
},

mounted() {
this.handleResize();
this.manage_mob_classes();
window.addEventListener('resize', this.handleResize)
//this.isOpen !=  (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},
destroyed() {
window.removeEventListener('resize', this.handleResize)
},
created() {
//manage_mob_classes();
},

methods : {
isMobile() {
  return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},

  handleResize() {
    if (!this.isMobile()) {
      this.isOpen = window.innerWidth > 800;
    }
  },

  manage_mob_classes() {
    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
      $("nav").addClass("mob_nav");
      $("main").addClass("mob_main");
      $("#extraz").addClass("mob_extraz");
      $("#carbonads-container").addClass("mob_carbonads-container");
      this.isOpen  = false;
    } else {
      $("nav").removeClass("mob_nav") 
        $("main").removeClass("mob_main");
      $("#extraz").removeClass("mob_extraz");
      $("#carbonads-container").removeClass("mob_carbonads-container");
      this.isOpen  = true;
    }
  },

  toggleNav() {
    this.isOpen =! this.isOpen ;
    // alert("Toggle nav!");
    console.log("toggleNav() click: " + this.isOpen );
  }
}
})

$("#carbonads-container").append(ads);


$(function() {

    var darkmode = Cookies.get("darkmode");
    console.log("Document ready: " + darkmode);

    if ( darkmode  == "true" ) {
      $('#cssSelect').text("Light mode");
    } else {
      $('#cssSelect').text("Dark mode");
     }

    $('body').css('display','block');
    });

</script>

    
  </body> 
</html>

